// 1.为了解决冲突
// let obj={
//   name:"zhangsan",
//   age:12,
// }
// // 新增属性 修改或者覆盖属性
// obj.name='lisi';
// let obj={
//   name:"zhangsan",
//   age:12,
//   gender:"男",
//   // 如果属性名是一个变量就要使用中括号括起来
//   [sy1]:'lisi'
// };
// let sy1=Symbol('name');
// // obj[sy1]='lisi';
// console.log(obj);

// 2.消除魔术字符串
// function test(params) {
//   switch (params) {
//     case 'one':
//       console.log('这是one的操作');
//       break;
//     case 'two':
//       console.log('这是two的操作');
//       break;
//     case 'three':
//       console.log('这是three的操作');
//       break;
//     case 'four':
//       console.log('这是four的操作');
//       break;
//     case 'five':
//       console.log('这是five的操作');
//       break;
//     default:
//       console.log('这是默认的操作');
//       break;
//   }
// }
// test('five')

// symbol消除魔术字符串
// let obj={
//   attr1:Symbol('one'),
//   attr2:Symbol('two'),
//   attr3:Symbol('three'),
//   attr4:Symbol('four'),
// }
// function test(params) {
//   switch (params) {
//     case obj.attr1:
//       console.log('这是one的操作');
//       break;
//     case obj.attr2:
//       console.log('这是two的操作');
//       break;
//     default:
//       console.log('这是默认的操作');
//       break;
//   }
// }
// test(obj.attr1)

// 3.全局注册表
let sy1=Symbol.for('hello');
let sy2=Symbol.for('hello');
console.log(sy1===sy2);
let sy3=Symbol('hello');
let sy4=Symbol('hello');
console.log(sy3===sy4);
// 检测symbol值是否在全局注册过  返回key或者Undefined
let result=Symbol.keyFor(sy1);
let result2=Symbol.keyFor(sy2);
let result3=Symbol.keyFor(sy3);
let result4=Symbol.keyFor(sy4);
console.log(result,result2,result3,result4,'全局注册表');